Tableauの関数を全て試してみる〜文字列関数編その2〜 #tableau
はじめに
こんにちは。DI部のtamaです。
当エントリはTableau Functions Advent Calendar 2017の6日目のエントリです。 昨日のエントリはTableauの関数を全て試してみる〜文字列関数編その1〜でした。
今回も引き続き、文字列関数について見ていきます。 ※MAXとMINについては、数値関数エントリで紹介しているため、本エントリでは扱いません。
- 使用するTableauのバージョンは一貫して10.4.1です。
- 各関数の説明で引用しているのは、Tableauの公式リファレンスからの引用です。
- TableauHelp 関数
目次
検証環境
作業環境
- MacOS High Sierra 10.13.1
- Tableau 10.4.1
使用データ
- (原則)Tableau付属のサンプルスーパーストア
- (場合によって)関数グラフ描画用データ
- -1〜1の範囲で、0.01毎に値が並んでいるデータ
- 上記の値をディメンション「X軸」とし、その上に色々な関数をプロットする。
- 参考:Tableau 関数グラフの描画 | Developers.IO
LOWER
概要
string のすべての文字を小文字に返します。
- 概要そのままの関数ですね。
使ってみた
オーダーIDに大文字が入ってるので、試してみます。
LOWER([オーダー Id])
JPの部分が小文字になっています。 数値はそのままです。(当然ですが、無視されます)
どういう時に使う?
- データを突き合わせたりする時、内容は同じでも大文字小文字が違うパターン…という時
- 片方は先頭大文字、もう片方は全部小文字…など
- 大文字小文字が混在しているデータのクリーニング
参考文献
LTRIM
概要
先頭の空白を削除した文字列を返します。
- 最初に入っているスペースを取り除きます。
使ってみた
サンプルデータストアはかなり綺麗なデータとなっており、先頭に空白が入っているような項目はないので、 適当に作った、先頭に空白ありファイルを使用します。
空白を除去したいと思います。
LTRIM([市町村])
どういう時に使う?
- 文字列データのクリーニングなど
- 変な空白が入ってしまっているデータに出会う確率は、意外と高いです。
参考文献
MID(string, start, [length])
概要
インデックス位置 start で始まる文字列を返します。文字列の最初の文字の位置は 1 です。オプションの引数 length を追加した場合、返される文字列には、その引数に相当する数の文字だけが含まれます。
- 指定した場所から始まる文字列を返す関数です。
- 何文字返すかも指定できます。
使ってみた
オーダーIDの西暦の部分だけ抜き出してみます。
MID([オーダー Id],4,4)
どういう時に使う?
- 一定のルールに基づいたデータ(通し番号系、ID系等)に対しての処理
- 「○桁目が○○の場合は、○○という種別」といったIDのデータに対して、その部分だけ抜き出してフィルタに使用する…といった利用方法が考えられます。
- 住所が一つのカラムに全部入っていて、部分的に参照したい場合にも有効ですね。
- 文字数等、別の関数で調整する必要はありますが…
参考文献
REPLACE(string, substring, replacement)
概要
string で substring を検索し、それを replacement で置き換えます。substring が見つからない場合、string は変更されません。
- ある文字列を、指定の文字列で置換できる関数です。
使ってみた
オーダーIDのJPをUSに変えてみましょう。
REPLACE([オーダー Id],"JP","US")
どういう時に使う?
- 文字列データのクリーニングなど
- 他の関数との組み合わせでも、お役立ちな関数と思われます。
- IF文等で条件に合致したものだけ、置換するなど…
参考文献
RIGHT(string, number)
概要
string 内の一番右から n 文字分を返します (n は引数で指定された数)。
- LEFT関数の逆です
使ってみた
オーダーIDの右側の数値部分を抜き出します。
RIGHT([オーダー Id],7)
どういう時に使う?
- 一定のルールに基づいたデータ(通し番号系、ID系等)に対しての処理
- 「末尾何桁が○○のIDは、☓☓というカテゴリ」というルールを施しているデータは結構ありがちです。
参考文献
おわりに
今回も文字列関数をみてきました。全体的に、整理されていないデータをサクッと調整することに長けたものが多いと思います。データの前処理はTableauから接続する前に済ませておくのが理想ですが、のっぴきならない事情で、Tableau上で何とか調整しなければならない場面もあるかと思います。そんな時に力を発揮してくれそうです。
次回はtamaによる「文字列関数編その3」です。お楽しみに。